home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Raytracing 1
/
Amiga Raytracing 1.iso
/
cinema-4d-demo
/
bilder
/
vt.doc
< prev
next >
Wrap
Text File
|
1994-07-17
|
25KB
|
681 lines
Viewtek
A freely distributable picture and animation viewer for the Amiga
(Another fine UBTASITE product)
Written by Thomas Krehbiel
Copyright © 1992,1993 Thomas Krehbiel
All Rights Reserved
(Notice how the 'tek' in Viewtek is not capitalized in any way.)
-----------------------------------------------------------------------------
If you like Viewtek, and you are of the opinion that if a programmer
writes *one* good program, then *all* programs by that same programmer
must be good, then take a look at ImageFX, too. :)
-----------------------------------------------------------------------------
IMPORTANT, CRITICAL, VITAL-TO-NATIONAL-SECURITY NOTES
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Many people reported crashes playing hires overscan animations; this
version does not seem to be doing this, however I was only able to duplicate
this problem once under less-than-ideal circumstances with the previous
version. I'm sure I can count on you people to let me know if it still
crashes. :) Sorry for any inconvenience.
Throughout this document you will find information on (most of) the
new features, including datatypes, XPK support, and playing animations
from hard drive. I've tried to mark new items with a "(1.05)" so you
can search for them with a text editor.
Also, see the important note under DISTRIBUTION below.
(See the end of this document for changes since the previous version.)
INTRODUCTION
~~~~~~~~~~~~
Some of you may remember an ILBM/ANIM viewer program I wrote a while back
called "TIV". Some would say that "Viewtek" is TIV 2.0, but I consider it a
totally different and much improved program (no part of TIV is in Viewtek; it
is all rewritten from scratch). (If you're using TIV now under 2.0 I
*strongly* suggest you dump it in favor of Viewtek.)
Viewtek was written with a few objectives in mind. I wanted a program
that first and foremost was totally 2.0 (and 3.0) compatible. I wanted it to
take advantage of 3.0 and the AGA chips wherever possible. I wanted it to
show ANIMs as good or better than TIV did, with support for any and all
display modes. I also wanted to be able to render decent (if not
spectacular) representations of 24-bit ILBMs, GIFs, and JPEGs. And I wanted
to keep the program internally modular enough to support 3rd party display
devices fairly easily (I don't find this goal terribly useful anymore
now that I have an A4000, but it's still there just in case).
The result you have before you.
FEATURES
~~~~~~~~
o Requires Workbench 2.04 or greater.
o Shows most ILBM's (including 24-bit ILBM's).
o Shows most Compuserve GIF format images.
o Shows most JFIF format JPEG images.
o Shows most ANIM Op5/Op7 format animations, with support for
different palettes for each frame.
o Supports SHAM, CTBL, and PCHG images.
o Full support of ECS/AGA display modes (ie. show 256 color GIF's
directly, show 800x600xHAM animations, etc.).
o Supports viewing contents of clipboard.
o Iconifies to a Workbench AppIcon.
o Can play animations directly from hard drive.
o Supports the XPK compression package.
o Includes a version written for GVP's Impact Vision 24, to support
true 24-bit display.
o And even includes a stripped-down version that doesn't show GIF's
or JPEG's for those who don't need it.
NOTE
~~~~
I have no intention of supporting ANIM8 as long as there is an infinitely
superior ANIM7 format around. You, the animation user, would be wise to
petition those who would use ANIM8 to use ANIM7 instead. Unless you *want* a
less efficient animation format. 'Nuff said.
The included utility MakeAnim7 can be used to convert existing animations
(5's or 8's) into the ANIM7 format.
I have also included the documentation I received that describes the
ANIM7 format. To the best of my knowledge, there are no limitations on
its distribution.
DISTRIBUTION
~~~~~~~~~~~~
Viewtek is being distributed as Freeware. It may be freely distributed to
any bulletin board service, network, or public domain collection, so long as
no fees (beyond reasonable media fees) are charged for its distribution (that
is, no fees are charged for Viewtek). I'm not asking for donations on this
one, but feel free to drop me a note (preferably e-mail) or something if you
want.
Note, however, that Viewtek is NOT public domain. The author retains all
rights to the program.
IMPORTANT: If you want to include Viewtek with any sort of commercial
distribution, you are free to do so as long as the following files are
included somewhere in your distribution (and not modified):
VT
VT.info
VT.doc
VT.doc.info
It is not necessary that you contact me to get my permission; I hereby
grant permission to any and all who wish to use Viewtek as a picture and/or
animation viewer for any commercial or non-commercial purpose. See another
important note under AUTHOR below if Viewtek doesn't quite meet your needs
for a picture viewer.
OOPS!
~~~~~
Older versions of the Viewtek documentation left out a very important
statement:
This software is based in part on the work of the Independant JPEG Group.
I'd just like to apologize to the Independant JPEG Group for not having
included this, they deserve full credit for their work in bringing this
popular compression format to the computer world at large.
INSTALLATION
~~~~~~~~~~~~
Viewtek requires no special libraries or fonts or anything to run. Simply
drag the Viewtek icon to wherever you wish to install it. It may be run from
a Shell, Workbench, or even your favorite dirutil.
The IV-24 version of Viewtek, however, requires that you have a copy of
GVP's "fye.library" in your LIBS: directory. (If you have an IV-24, chances
are pretty good you have this installed already.)
DISABILITIES
~~~~~~~~~~~~
Okay, what *doesn't* it do?
- No color cycling (yet?). Why? I have exactly one picture that
color cycles out of hundreds of images and I never look at it
anyway, so it wasn't a high priority.
- Some CTBL images may not quite show properly, more than likely
due to more palette changes per line than can be shown properly
with the copper. Same may be true for SHAM pictures. I probably
will not fix this because I don't really see much value in these
types of pictures anyway. It may help to force the images
to be shown in NTSC/PAL on an A4000, or move the picture
to the right (with control arrow keys). With better displays
becoming more widely available, this is also not a priority
to work on.
- Does not (yet?) support a non-existant first-frame BODY as
specified for ANIM7 animations. (Personally, I think this is
a bad thing anyway.)
- Known incompatibility: VT doesn't interact well with the Commodore
mouse blanker supplied with 3.0 when showing animations. When
you move the mouse after it has been blanked (eg. after hitting some
keys during the animation), the screen goes black.
DATATYPES AND YOU (1.05)
~~~~~~~~~~~~~~~~~~~~~~~~
Viewtek 1.05 makes use of 3.0's datatypes.library. This means that when
VT runs across a file it is not capable of reading, it then asks datatypes
to try and read the file. If it can, then VT will still be able to show the
file.
If you want VT to use datatypes exclusively (ie. not try to identify or
decode the files within VT at all), use the "DT" option on the command line.
This lets you, for example, use the GIF datatype instead of VT's own GIF
decoding.
VT has been tested successfully with the GIF and PCX datatypes. (These
are the only ones I have.)
NOTE: Processing files via. datatypes works a little differently than
things normally work in VT... there is no way to abort reading a file, and
the file is read entirely into memory before even opening a display screen.
SHOWING COMPRESSED FILES (1.05)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Viewtek 1.05 supports the XPK compression package (a nice package, BTW),
allowing it to read any kind of encoding scheme that XPK itself supports.
In order to continue using iffparse.library and in generally keep VT the
way it is, it works a little strangely; the encoded file is decompressed to
a temporary file in T:, which is then shown normally by Viewtek. Obviously,
this could impose some memory problems if your T: directory happens to be in
RAM:.
You'll have to get the XPK package elsewhere; consult a BBS near you (I
got it from BIX).
PLAYING ANIMATIONS FROM DISK (1.05)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Viewtek 1.05 can play animations directly from disk... sort of. How well
it works depends on many factors:
- The speed of your computer.
- The speed of your hard drive and/or controller.
- The complexity/resolution of the animation.
- The chosen playback rate.
- The chosen buffer size.
- How much you're willing to fiddle with parameters.
Here's an overview of how it works: Playback from disk is done with two
tasks; one task is responsible for reading data from disk, the other task is
responsible for decoding and displaying the frames. Basically, while the
disk reader is getting data from disk, the playback task is playing the
frames from the previous batch.
Buffer Size. The buffer size is very important to the performance of the
playback. The idea is to make the buffer size such that a new batch of
frames can be read from disk faster than VT can play the frames from the
previous batch. If the buffer size is too small, VT will end up stuttering
during playback because it has to wait for the disk reader to catch up to
the playback task. However, if the buffer size is too large, a lot of
wasted time will be spent reading from the hard drive (on my system, reading
from the drive for extended periods of time also causes the animations to
stutter - not sure if this is just my own HD or a universal problem tho).
(NOTE: Animations with large deltas will require larger buffer sizes.
Viewtek will inform if you need to increase the buffer size (and give you
an approxiamate target size).)
Playback Rate. A good way to smooth out the playback is to slow down the
playback rate. This will give the disk reader task more time to read from
the disk.
Animation Complexity. Let me be blunt: If you think a 736x480, HAM8
animation of a camera pan is going to animate well, you're crazy. The
Amiga's good, but it ain't *that* good. :)
Computer Speed. Obviously, the faster your computer, the better the
results are going to be. I personally haven't tried VT on a system equipped
with less than a 68040 for quite some time, so I can't really comment on
whether it will even work at all on a 68000.
Hard Drive Speed. I've tried HD playback on two systems: One is an
A4000 with the internal IDE drive, along with a GVP SCSI controller and a
Maxtor drive. The other is an A2000 with a GVP G-Force 040 (SCSI controller
built-in) and a couple Quantum drives. (Funny how I have all this GVP
stuff, ain't it? :) The results I get are generally pretty good, although
stuttering animations definitely do happen. Fiddling with the playback rate
and buffer size usually helps in all but the most severe cases though.
In short, if you have a 1MB A500 and want to genlock your 40MB HAM
interlace animations onto videotape for production work, you'll be
disappointed. This feature is strictly a novelty at this point.
CAVEATS: The Up Arrow does not work when playing anims from disk, and
the animations are always played in "continuous" mode; ie. if the anim
doesn't have loop frames it's going to look pretty strange.
COMMAND LINE OPTIONS
~~~~~~~~~~~~~~~~~~~~
Note that all options now have (hopefully) convenient two-letter
abbreviations in case you don't like to do a lot of typing. (1.05)
FILE HANDLING OPTIONS
~~~~~~~~~~~~~~~~~~~~~
Files/M
One or more files, directories, or patterns. If you give VT a
directory, all files in that directory will be shown (in no
special order). Standard AmigaDOS wildcards are supported.
Basically, anything that is not a recognizable option is assumed
to be a file spec.
AL=All/S
Tells VT to recursively enter subdirectories.
CL=Clip/S
Read image from clipboard.
DE=Delay/K/N
Number of seconds to show each picture or animation before
automatically proceeding to the next one. The timer doesn't
start until *after* the picture or animation has been loaded.
DT=DataTypes/S (1.05)
Force VT to use Datatypes to identify and display files (normally
datatypes is the last thing checked before giving up on a file).
This lets you, for example, use a datatypes GIF converter instead
of the one built into VT.
FO=Forever/S
Repeat showing the list of files given on the command line
forever and ever amen (and/or until cancelled).
IL=ILBM/S
Force VT to assume all files are ILBM pictures. In case you only
want to show the first frame of an animation and not the whole
thing.
RE=Repeat/K/N
Repeat showing the list of files given on the command line
the number of times specified (or until cancelled manually).
SA=Save/K
Save the resulting image that VT renders to a displayable
ILBM file. Makes VT into a (*very*) simple file conversion
utility. (NOTE: I have no plans to turn VT into a killer
awesome amazing wonderful convert-anything-to-everything-
else file converter.)
UT=Unit/K/N
Specify clipboard unit when showing contents of clipboard.
ANIMATION OPTIONS
~~~~~~~~~~~~~~~~~
BU=BufSize/K/N (1.05)
Sets the buffer size when playing animations directly from
hard drive, in KB (ie. BUFSIZE 128 == 128KB). VT actually
allocates 3 of these buffers, so don't get too crazy. Also
see the notes on playing animations from disk elsewhere in
this document.
CO=Cont/S
Force animations to be considered "continuous". My definition
of a "continuous" animation is one that has those two looping
frames stuck on the end (like the kind that DPaint always
creates). Normally, VT will only consider an animation to be
continuous if a DPAN chunk is found.
DI=Disk/S (1.05)
Force animations to be played directly from disk.
FP=FPS/K/N
Specify animation playback rate in frames per second.
LP=Loop/K/N
Number of times to loop an animation before continuing on with
the next file. Normally, VT will loop until you tell it to
stop.
MA=MaxFrames/K/N (1.05)
Maximum number of frames to read from an animation. This is
handy if you don't quite have enough memory to load an entire
animation, or for some reason the anim is corrupted beyond
repair halfway through; VT will only read in the number of
frames you specify before going on to show it.
ND=NoDisk/S (1.05)
Never show animations from disk. Normally, VT will try to play
an animation from disk if it sees you don't have enough memory
to play the animation from RAM.
SP=Speed/K/N
Specify animation playback rate in jiffies per frame (one
jiffy is 1/60th of a second).
PA=Paused/S
Begin animations in paused mode; you must hit the right or
down arrow to actually begin playing the animation.
DISPLAY MODE OPTIONS
~~~~~~~~~~~~~~~~~~~~
DF=Default/S
Force pictures and animations to use the DEFAULT monitor id.
This is handy when you have mode promotion on, but a picture
you are showing is hard-coded as NTSC... this option forces
the picture to use the default monitor id, which in turn
causes it to be mode promoted.
HI=Hires/S
Force pictures and animations into HIRES. Use with caution;
some viewmode combinations are not allowed on non-AGA machines.
LA=Lace/S
Force pictures and animations into INTERLACE.
LO=Lores/S
Force pictures and animations into LORES.
NL=NoLace/S
Force pictures and animations into NON-INTERLACE.
NS=NoScroll/S
Disable autoscrolling large pictures. Why? Beats me.
NT=NTSC/S
Force pictures and animations to use the NTSC monitor id.
PL=PAL/S
Force pictures and animations to use the PAL monitor id.
S7=Super72/S
Force pictures and animations to use the SUPER72 monitor id.
Generally only useful on AGA machines.
SC=ScreenMode/K
Specify the name of any available screen mode to show pictures
and animations in. The name must be exact, as shown in the
preferences ScreenMode program (be sure to put quotes around
the name if it has spaces in it). Case is not sensitive.
SU=SuperHires/S
Force pictures and animations into SUPERHIRES mode.
UN=Underscan/S (1.05)
Disables overscan for any pictures or animations that VT shows,
this lets you see all the way to the edges of super bitmap
pictures.
MISCELLANEOUS OPTIONS
~~~~~~~~~~~~~~~~~~~~~
HD=Hide/S
Hide images while they are being decoded. Normally, VT
shows you the images while they are being read; this option
causes VT to only show you the images when they are completely
decoded. You probably want to set this for slideshow-style
presentations.
IC=Iconify/S
Start VT in iconified mode. When iconified, a little AppIcon
appears on your Workbench, where you can drag image icons to
view them. Double-clicking the icon gives you options for
quitting or showing files interactively.
IN=Info/S (1.05)
Only display information about files, do not actually display them.
LM=LowMem/S
Disable double-buffering of pictures. Handy if you don't have
a lot of chip memory.
NB=NoBusy/S
Do not show a busy pointer at any time.
PO=Pointer/S (1.05)
Do not blank the mouse pointer when showing pictures.
QU=Quiet/S
Do not print any information to the shell.
EXAMPLES
~~~~~~~~
1> VT picdir
Show all files in the "picdir" directory.
1> VT picdir ALL
Show all files in "picdir", including subdirectories.
1> VT picdir SUPER72 SUPERHIRES LACE
Show all files in "picdir", forcing them into Super72 800x600 mode.
1> VT myjpeg SAVE ram:mypic
Show "myjpeg", and save the resulting screen to "ram:mypic".
1> VT picdir HIDE
Show all files in "picdir", but don't show each picture until it is
fully read into memory.
1> VT picdir FOREVER DELAY 2
Show each file in "picdir" for 2 seconds, repeat forever.
1> VT picdir SCREENMODE "MULTISCAN:Productivity"
Show all files in "picdir", forcing each one into Productivity mode.
USEAGE FROM WORKBENCH
~~~~~~~~~~~~~~~~~~~~~
All of the options above may be used (except Files/M) as a tool type.
(Not the abbreviated form, the spelled out form.) The following additional
tool type may be set:
DEFAULTDIR Choose default directory where file requester opens.
VIEWING COMMANDS
~~~~~~~~~~~~~~~~
ESCAPE Abort viewing immediately.
BACKSPACE Abort viewing current directory (when using 'ALL').
LMB/RMB Go to next picture.
SPACE Will hold on the current picture, when using DELAY.
S Will save the currently displayed picture as an
ILBM (you will be asked for an output filename).
This only works on pictures; not animations (yeah,
I know it would be nice to save frames from anims,
but gimme a break here... I've only got 2 hands. :)
CTRL+Arrows Move image/anim around on the display (overscan position).
Up Arrow (Anim Only) Return to beginning of the animation.
Right Arrow (Anim Only) Pause/single step animation.
Down Arrow (Anim Only) Resume playing animation after paused.
C (Anim Only) Toggle "continuous" mode.
F1 (Anim Only) Play animation as fast as possible.
F2 (Anim Only) Play animation at 60fps.
F3 (Anim Only) Play animation at 30fps.
F4 (Anim Only) Play animation at 24fps.
F5 (Anim Only) Play animation at 15fps.
F6 (Anim Only) Play animation at 12fps.
F7 (Anim Only) Play animation at 10fps.
F8 (Anim Only) Play animation at 5fps.
F9 (Anim Only) Play animation at 1fps.
F10 (Anim Only) Play animation at rate specified in ANIM file.
SHAMELESS PLUG
~~~~~~~~~~~~~~
Yes, it's true, ImageFX is the greatest image processing software
ever to walk the face of the earth. Get it. Don't make me beg... :)
THE AUTHOR
~~~~~~~~~~
I can be reached on BIX as "tkrehbiel" if you want to email me about
something (like, say, bugs). BIX is now connected to the Internet, so my
Internet address is "tkrehbiel@bix.com".
You can also reach me on the Late Nite BBS (804-262-9944) as Tom Krehbiel
(user #13).
As a last resort my U.S. Mail address is:
Thomas Krehbiel
10747 Surry Road
Chester, VA 23831
WARNING: I generally don't answer paper mail very fast (if at all), and
I am also pretty slow responding to email these days.
NOTE: I am currently not available for any sort of programming work,
including (but not limited to :) custom versions of Viewtek.
REVISION HISTORY
~~~~~~~~~~~~~~~~
1.05 6/17/93 MakeAnim7 now copies over unknown chunk types;
this preserves DPaint looping/speed info.
Shows 640x480 GIFs in Productivity mode under AGA.
Removed V39 gfx double buffering, 'cause palette
changing didn't seem to work.
Added anim playing from disk... of sorts.
Added 'S' to save picture being displayed.
Now supports XPK to read crunched files.
Now supports datatypes to read unknown file types.
New two-letter abbreviations for all options.
Added UNDERSCAN, INFO, and POINTER options.
Revised this documentation a bit.
1.04a 3/14/93 Fixed DEFAULTDIR tool type to actually work.
SAVE works on ILBM's without memory gurus.
*Doesn't* call BestModeID under < V39 anymore... :)
1.04 3/9/93 Supports ANIM7 (short & longword) animations.
Supports ANIM brushes.
Now uses the latest version of Tom Lane's JPEG code.
Fixed SAVE option (CMAP specifically) under < V39.
Added SUPER72, SUPERHIRES, and SCREENMODE keywords.
Changed the way it picks JPEG viewmodes.
Tells you how many frames are in the anims it plays.
Now uses new graphics double buffering under V39.
Added PAUSED option for animations.
Added a FPS option to set frame rate in fps.
1.03b 1/10/93 Now allows showing directories via. file requester.
Shows >= 800x600 GIF's in Super72 mode if available.
More robust error messages on display open fail.
Now uses BestModeID to show undisplayable modes.
Doesn't close screen on first click of LMB after inactivity.
1.03a 12/15/92 Fixed unbelievably stupid bug in AppIcon stuff.
1.03 12/10/92 Fixed hanging locks when used as AppIcon.
Added LORES,NOLACE,ILBM options.
Always sets autoscroll now, and still centers 'em.
Added NOSCROLL option to disable autoscroll.
Added SAVE option to save rendered pictures.
Handles animation playback a bit better.
1.02a 11/25/92 More accurate overscan calculation. (Maybe not)
1.02 11/24/92 Stock version renders to HAM8 mode if available.
Oops, fixed so you can select just one file from ASL freq.
Fixed problem with VT's abort "sticking".
Fixed problems with centering AGA animations.
Added NTSC/PAL/DEFAULT options.
Now examines DPAN chunks for frame rates.
Fixed problems with 'odd' sized anims on AGA.
Defers allocating ASL struct until needed.
More generalized copper stuff.
1.01 11/10/92 Now more intelligent about picking JPEG viewmodes.
Handles ANIMs with masking planes.
Now able to respect ANIM's reltime by pressing F10.
Added busy pointer while loading images.
1.00 11/4/92 Initial version.